package com.funtonow.jqdk.utils;

import android.text.TextUtils;
import android.util.Base64;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.RequestOptions;
import com.funtonow.jqdk.R;
import com.funtonow.jqdk.base.SqjAppliaction;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 * @author Jiajien
 * @date 2019/5/27
 */
public class GlideUtils {

    private static RequestOptions options;

    public static void setHeadImg(ImageView img, String url) {
        options = new RequestOptions().centerCrop()
                .skipMemoryCache(true)
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .placeholder(R.mipmap.ic_launcher)
                .error(R.mipmap.ic_launcher);
        Glide.with(SqjAppliaction.getContext())
                .load(url)
                .apply(options)
                .into(img);
    }

    public static void setCircleHeadImg(ImageView img, String url) {
        options = new RequestOptions().centerCrop()
                .skipMemoryCache(true)
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .placeholder(R.mipmap.default_img)
                .error(R.mipmap.default_img);
        Glide.with(SqjAppliaction.getContext()).load(url)
                .apply(options)
                .into(img);
    }

    /**
     * 将图片转换成Base64编码的字符串
     */
    public static String imageToBase64(String path){
        if(TextUtils.isEmpty(path)){
            return null;
        }
        InputStream is = null;
        byte[] data = null;
        String result = null;
        try{
            is = new FileInputStream(path);
            //创建一个字符流大小的数组。
            data = new byte[is.available()];
            //写入数组
            is.read(data);
            //用默认的编码格式进行编码
            result = Base64.encodeToString(data,Base64.DEFAULT);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if(null !=is){
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

        }
        return result;
    }

}
